nexus\api\rtapi/
camera.rs

1use super::RealTimeData;
2
3#[derive(Debug, Clone)]
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5pub struct CameraData {
6    /// Camera position in the game world.
7    pub camera_position: [f32; 3],
8
9    /// Camera facing direction.
10    pub camera_facing: [f32; 3],
11
12    /// Camera field of view.
13    pub camera_fov: f32,
14
15    /// Whether action camera is enabled.
16    pub is_action_camera: bool,
17}
18
19impl CameraData {
20    /// Reads camera data from the given data pointer.
21    ///
22    /// # Safety
23    /// The pointer must be safe to read from.
24    pub unsafe fn read(data: *const RealTimeData) -> Self {
25        Self {
26            camera_position: (*data).camera_position,
27            camera_facing: (*data).camera_facing,
28            camera_fov: (*data).camera_fov,
29            is_action_camera: (*data).is_action_camera.is_action_camera(),
30        }
31    }
32}